This file is going to be a simple document on how to go about creating a skill/spell/etc...

SLOOKUP = This command allows you to lookup a skill/spell/etc... that is
          already created and see how it is set.

   SSET = This command will allow you to create and set a skill/spell/etc...

While these are the two major things when creating spells/skills/etc... there
are lots of help files you might find helpfull.
Help files you should look at:
        SLOOKUP
           SSET
    AFFECTTYPES
 OBJECTAFFECTED
      STATTYPES
      SSET CODE
    SSET DELETE
  SSET REQSKILL

Most of it should be easy to figure out, one day more info might be given in
this document.

**************************************************************************************************

Create a new Skill/Spell/Herb/Personal Spell in LoP1.38
By Hanaisse
------------------------------

1. Use SLOOKUP <skill name> to make sure the skill is not already created (and just not being used).
2. Use SSET to create/edit/delete the new skill.

   Usage: sset create <skill/spell/herb/personal> <new skill/spell/herb/personal name>
          sset <sn> magical
          sset <sn> <field> <value>

   Field being any applicable of:

   name = The name is used for practising the skill or spell and by the 'cast' command.  Mobiles which cast
          spells also often invoke the spell by name.  Save files contain this name.
   minlevel = The minimum level which each class needs in order to practice the skill or spell. If a class/race
              cannot use the skill/spell this field is set to -1.
   code = This allows you to set the code on a spell, skill, etc... (see below for more information)
          If there is a code added specific for it you can use it. (skill DO_FUN, spell SPELL_FUN))
          If you want it to be a generic type of skill or spell typically spell_smaug is used as
          the code.
          If you want the skill to be automatic (passive) or if its for weapons and tongues use spell_null.
   target = This identifies the targets of the spell.  The legal values are:
	      TAR_IGNORE			Spell chooses its own targets.
	      TAR_CHAR_OFFENSIVE		Spell is offensive (starts combat).
	      TAR_CHAR_DEFENSIVE		Spell is defensive (any char is legal).
	      TAR_CHAR_SELF		       Spell is personal-effect only.
	      TAR_OBJ_INV			Spell is used on an object.
            This field is unused for skills unless the skill is pointed to a spell function.
   minpos = This is the minimum position needed to use the spell/skill.
	     It is usually POSITION_FIGHTING or POSITION_STANDING for spells.
   slot = Slot number, or SN, generated during sset create.
   mana = The minimum amount of mana it takes to cast the spell.
   beats = This is the delay time, in pulses, imposed on the user of a spell or a skill.
           (derived from pusle_per_second in mud.h)
   dammsg = The damage message for skills or spells that perform damage.
   wearoff = This is the message sent to the character when the skill or spell wears off.
   type = Being one of skill, spell, weapon, tongue.
   flag = seffect (saves) or rmaffect (range of room affect)
   hitchar = Success message sent to the caster.
   hitvict = Success message sent to the victim.
   hitroom = Success message sent to the room.
   hitdest = Success message sent to destination room.
   misschar = Failure message sent to the caster.
   missvict = Failure message sent to the victim.
   missroom = Failure message sent to the room.
   diechar = Victim death message sent to the caster.
   dievict = Victim death message sent to the victim.
   dieroom = Victim death message sent to the room.
   immchar = Victim immunity message sent to the caster.
   immvict = Victim immunity message sent to the victim.
   immroom = Victim immunity message sent to the room.
   abschar = Victim absorb message sent to caster.
   absvict = Victim absorb message sent to victim.
   absroom = Victim absorb message sent to room.
   dice = Dice roll for damage.
   value = Misc. values used by Smaug spells.
   difficulty = How difficult the spell is to cast and learn.
   affect = For spells, having the fields: <location> <modifier> [duration] [bitvector]
            (See AFFECTTYPES for location, and OBJECTAFFECTED for affects)
   components = A list of spell component information if any.
   teachers = A list of mob vnums that teach this skill/spell/weapon/tongue.
   participants = For (multicaster) spells.  The number of required participants.
                  (There are currently none)
   class = What classes can use this, at what level can they begin to learn, and max adept it can be learned.
   race = What races can use this, at what level can they begin to learn, and max adept it can be learned.
   reqskill = Any prerequisite skill/spell required before they can begin to learn this one.
   acttype = none, create, destroy, resist, suscept, divinate, obscure, change
   damtype = none, fire, wind, earth, water, ice, cold, electricity, energy, acid, poison, drain, holy, shadow
   classtype = none, lunar, solar, travel, summon, life, death, illusion
   powertype = none, minor, greater, major
   sector = What sectortype the spell is allowed to be performed in. See help SectorTypes.
   magical = is this a magical skill/spell


   Example;
   --------

   >slookup deflect
    No such skill, spell, weapon, tongue, herb or personal.

   >sset create skill deflect
    Done.

   >slookup deflect
   Sn:  232 Slot:   -1 Skill: 'deflect             '
   Saves: none
   Magical: Yes
   Type: Skill  Target: ignore  Minpos: 0[dead]  Mana: 0  Beats: 0  Range: 0
   Value: 0  Code: spell_smaug
   Sectors Allowed: All
   Dammsg: (None Set)
   Wearoff: (None Set)
   ---------------------------[CLASS USE]---------------------------
     Cleric) lvl:  -1 max:  95%        Druid) lvl:  -1 max:  95%
       Mage) lvl:  -1 max:  95%      Paladin) lvl:  -1 max:  95%
     Ranger) lvl:  -1 max:  95%        Thief) lvl:  -1 max:  95%
    Warrior) lvl:  -1 max:  95%      Augurer) lvl:  -1 max:  95%

   ---------------------------[ RACE USE]---------------------------
       Drow) lvl:  -1 max:  95%          Elf) lvl:  -1 max:  95%
   Half-Elf) lvl:  -1 max:  95%    Half-Ogre) lvl:  -1 max:  95%
   Half-Orc) lvl:  -1 max:  95%   Half-Troll) lvl:  -1 max:  95%
   Halfling) lvl:  -1 max:  95%        Human) lvl:  -1 max:  95%
  Lizardman) lvl:  -1 max:  95%        Pixie) lvl:  -1 max:  95%
    Sea-elf) lvl:  -1 max:  95%        Dwarf) lvl:  -1 max:  95%
       Gith) lvl:  -1 max:  95%        Gnome) lvl:  -1 max:  95%


   >sset 232 code spell_null
    Ok.

3. Use SSET SAVE to save the new skill/spell/herb/personal.

   Usage: sset save <skill/herb/personal> table

4. Follow these steps if you write any code required for the new skill.
   - Update db.c with new gsn (short_gsn, assign_gsn)
   - Update mud.h (struct char_morph, struct morph_data, extern short gsn)
   - Update skills.c with a new bool check_(skill)
   - Update fight.c (new bool check for defensive skills)
   - Update const.c under flag types
   
5. Use SSET HELP to create a help file for the new skill/spell/herb/personal.

   Usage: sset <sn> help

6. Use SSET DELETE to delete a skill/spell/herb/personal

   Usage: sset <sn> delete

- Use SSET to update/advance player skills/spells.

   Usage: sset <victim> all/<skill> <value>

